#ifndef SOLAPA_H_
#define SOLAPA_H_

#include "SDL/SDL.h"
#include "../Mensaje/Mensaje.h"
#include "../Boton/Boton.h"
#include "../InputBox/InputBox.h"
#include "../MenuDeslizante/MenuDeslizante.h"
#include <vector>

using namespace std;

class Solapa
{
    private:
	string descripcion;                 //Descripcion de la solapa
	int desc_alto;                      //Alto de la Descripcion (default 25)
	int desc_ancho;                     //Ancho de la Descripcion (default 100)
	SDL_Surface* fondo;                 //Imagen de fondo de la solapa
	int x;                              //Posicion en x en la pantalla (default 75)
	int y;                              //Posicion en y en la pantalla (default 150)
	int alto;                           //Alto de la solapa (default 265)
	int ancho;                          //Ancho de la solapa (default 500)
	vector<Boton*> v_botones;           //Vector de botones de todos los pasos
	vector<Mensaje*> v_mensajes;        //Vector de mensajes de todos los pasos
	vector<InputBox*> v_inputs;         //Vector de input box de todos los pasos
	vector<MenuDeslizante*> v_deslizantes;         //Vector de menu deslizante
	unsigned int paso;                           //En que paso de la solapa esta (default 0)

	TTF_Font* font14;	                //Estilo de letra a utilizar en Solapa   OJO! HARDCODE

    public:

    Solapa( string descr, vector<Mensaje*> mensajes, vector<InputBox*> input, vector<Boton*> botones, vector<MenuDeslizante*> deslizantes );
    // Getters
    string getDescripcion();
	int getDescAlto();
	int getDescAncho();
    SDL_Surface* getFondo();
    int getX();
    int getY();
    int getAlto();
    int getAncho();
    vector<Mensaje*> getMensajes();
    vector<InputBox*> getInputs();
    vector<Boton*> getBotones();
    vector<MenuDeslizante*> getDeslizantes();
    unsigned int getPaso();
    unsigned int* getPunteroPaso();
    TTF_Font* getFont14();
    //Setters
    void setFondo(SDL_Surface* superficie);
    void setPaso(unsigned int i);

    void inicializarFondo();
    void DibujarDescripcion(SDL_Surface* superficie, int id, int activa);
    void DibujarSolapa(SDL_Surface* superficie, unsigned int solapa, unsigned int modo);

    void handleSolapa(SDL_Event event, unsigned int* act, int i, unsigned int* b_estado);
    void handleSolapaActiva(SDL_Event event, unsigned int* estado);

};

#endif /* SOLAPA_H_ */
